Font Data Streaming

ABSTRACT

Provided is a method for font data streaming for time-based video/audio presentations where content is transmitted in small increments and transmission continues while a previously transmitted portion is viewed or played. Different subsets of characters of the same font are assembled together on a device and previously sent characters are reused for rendering subsequent text strings. Font subsets are created to provide only a minimal number of glyphs for the character set coverage, thereby reducing the redundancy of font data transmission and reducing the total number of characters transmitted.

CLAIM OF PRIORITY

This application is a continuation application and claims priority under 35 U.S.C. §120 to U.S. patent application Ser. No. 12/457,792, filed on Jun. 22, 2009, the entire contents of which are hereby incorporated by reference.

FIELD OF THE INVENTION

The present disclosure relates generally to font data streaming, and more particularly to reducing the redundancy in font data transmissions.

BACKGROUND OF THE INVENTION

In digital broadcasting, a digital device (e.g., cable box) receives mixed media information. Interactive multimedia presentations combine a number of different elementary objects including, but not limited to, 2D and 3D vector graphics content, video, audio objects, text, scene composition, and layout information. Text content is encoded as a sequence of Unicode character codes. However, the character code only defines the semantical meaning of a character (e.g., Latin lowercase character ‘a’) and it does not provide any information about the character's visual appearance. In order to visualize text information, font data has to be present. The text may then be displayed by rendering images of each character using the font data. A device receiving digital broadcasts may have a resident font available to display the text, but several conditions may occur.

One condition that may occur is that resident font metrics may be incompatible with the layout of the multimedia presentation. A font may be too small or too large, which may lead to a break in the viewing experience of the presentation. For example, if a font is too small, the text may not be readable, or the layout of the multimedia content may be broken. On the other hand, if the font is too large, content layout may also be broken and/or portions of the text may be cut off (e.g., content menu entries, in which each entry is limited to a single line of text).

Another condition that may occur is that a resident font may not satisfy stylistic requirements. For example, a graphic content design may require a particular typeface or font style (e.g., “

vs. “Content Title”).

In addition, a resident font may not support the character set required by the application or content. For example, a user may access web or multimedia content that requires non-Latin character set support. If these additional characters are not supported by the resident font, the text display will be broken (e.g., missing characters will be displayed using a rectangular box).

Thus, in order for a media content to be faithfully rendered on a device (e.g., set-top box, mobile phone, PDA, computer system, etc.) where selected fonts may not be available, the fonts have to be embedded in the content, or transmitted as a separate resource. The receiving terminal would then have necessary font data for text rendering. However, font data may be quite large and transmitting a complete font may not be possible in real time and/or in bandwidth-constrained environments.

In the digital media industry to date, one known approach is to download a complete font (or font subset) file to a remote terminal in advance of sending the media content, to ensure that necessary font information is available when the text is to be rendered. However, this approach does not work in a broadcast environment, in which a media presentation is continuously updated in real time and the receiving terminal can tune into the broadcast at any arbitrary moment in time.

Another known approach involves subdividing font data into smaller data blocks and repeatedly transmitting them using data carousel mechanisms. In the carousel mechanism, all of the information necessary for the display of a broadcast is downloaded so that even if a user misses an original download (e.g., viewing) of the broadcast, the information is retained in the carousel and can be re-accessed. Thus, this approach ensures that, regardless of the moment when the initial broadcast starts, the terminals that tuned in later will receive (and collate) all necessary font data blocks.

The carousel may comprise a mixed file including subset fonts. Characters not required for use may be removed. Removal of the characters may involve subsetting of the fonts/characters that are not to be used. For example, if both Latin and Cyrillic characters are present in the original font and the program's text content is in English, the Cyrillic characters may be removed. Subsets may be created in advance (e.g., statically) and downloaded periodically. The same information may be repeated in portions and put in the carousel. However, the data carousel mechanism approach is extremely redundant in that it requires the same data to be continuously re-sent to satisfy real-time requirements.

SUMMARY OF THE INVENTION

Exemplary embodiments of the invention provide for font data streaming to reduce the redundancy of font data transmissions, thereby reducing the total number of characters for which data is transmitted during any given transmission.

According to exemplary embodiments, a method of font data streaming may comprise subdividing a data stream into data segments, and analyzing the text content of a first data segment to determine required fonts and an initial character set coverage, for each required font, a font subset that comprises only glyphs necessary for the initial character set coverage is generated and stored into memory. The font subset is transmitted along with the respective data segment to a receiving device.

The method may further comprise analyzing the text content of a subsequent data segment to determine required fonts and character set coverage for the respective data segment. For each required font, a current font subset that comprises only glyphs necessary for the character set coverage is generated. The current font subset is compared with the previous font subset, and those glyphs that have been sent in a previous font subset are removed from the current font subset, to produce a reduced font subset. The reduced font subset is stored into memory, and transmitted along with the respective data segment to a receiving device.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments will be clearly understood from the following detailed description taken in conjunction with the accompanying drawings. FIGS. 1-3 represent non-limiting, exemplary embodiments as described herein.

FIG. 1 is a general schematic illustration of an exemplary system in which the concepts of the present invention can be implemented.

FIG. 2 is a flowchart illustrating a method for font data streaming according to exemplary embodiments.

FIG. 3 is a diagram illustrating the data reuse concept of the font data streaming method in a multicast environment.

DETAILED DESCRIPTION

For simplicity and illustrative purposes, the principles of the invention are described by referring to exemplary embodiments thereof. The exemplary embodiments mainly refer to a method of delivering font data for time-based video/audio presentations (known as streaming). However, one of ordinary skill in the art will readily recognize that the same principles are equally applicable to many types of media presentation situations. Thus, the scope of the invention encompasses those situations in which the transmission of media content requires the delivery of font data.

Exemplary embodiments provide incremental updates to a communication or receiving device, wired or wireless (e.g., set-top box, mobile phone, PDA, computer system, etc.) and the interactive components thereof (e.g., video clips, graphics, and text). The incremental updating is similar to that provided in broadcasting and printing updates. A user selects content to be downloaded by browsing mixed interactive media, text, and/or graphics. The information obtained upon browsing is sliced into small portions, and transmitted as individual segments. In a digital transmission, adaptation to the information occurs within a short time period and the text strings change over time, and thus, there is a requirement for the font subsets to change in accordance with the content to be displayed. A line-by-line change involves incremental subsets.

Conventional digital transmission may involve the same transmission sequentially repeated for many users. For example, with mobile or cell phone technology, there is no one start time and multiple users can initiate the beginning of a transmission at different times. Thus, the same content is repeated for various users at different times. In contrast, with television, if a program is broadcast at 7:00 pm, but the user does not tune in until 7:10 pm, the missed portion will not be repeated and the user simply misses the first ten minutes of the broadcasted program.

Exemplary embodiments are provided to serve multiple clients through a digital server or client application. Exemplary embodiments provide a method that allows content to be displayed incrementally in different media at incremental times. In digital technology involving cell phones and PDAs, service to multiple users at different times needs to be provided. The users need to be able to view complete transmissions regardless of when the users begin to receive the transmission. Because each transmission is the same for each user, certain portions of the transmission may be re-used, but directed to different respective users.

Font streaming can be implemented by assembling different subsets of the same font together on a device, thus reusing previously sent characters for rendering of subsequent text strings. This concept is taken into consideration when font subsets are created, thereby reducing the redundancy of font data transmission.

In Table 1 that follows, an example of a dialog appearing as a part of a video presentation with subtitles is illustrated.

TABLE 1 Required Font Subset after Font Dialog Font Subset Streaming Line 1 Where is the Main M W a e h i n r s t ? M W a e h i n r s t ? street? Line 2 Turn right at the T a e g h i l n r t u x T g l u x next light Line 3 Thank you T a h k n o u y k o y

Referring to Table 1, the rendering of the first line of text requires a font subset that includes the characters “M W a e h i n r s t ?”. The second line of text requires the subset “T a e g h i l n r t u x”. The third subset contains the characters “T a h k n o u y.” The font subset that is transmitted for the first line of text contains the characters “M W a e h i n r s t ?”. The font subset that is transmitted for the second line of text, after removing redundancy, contains the characters “T g l u x”. The non-redundant font subset that is streamed for the third line of text contains the characters “k o y”.

As illustrated above, the total number of characters in the three original subsets is reduced from 31 to 19 when non-redundant font streaming is used. These subsets can be assembled (or linked together) in the receiving device as a single font. The process can be repeated if necessary, either in predetermined time intervals or to accommodate for breakdowns in transmission or stream resynchronization requirements.

One example of a media presentation system, in which the present invention can be implemented, is illustrated in FIG. 1. A multimedia signal, containing any one or more of video, audio, text and graphic content, is transmitted to users by a presentation server 10, via a suitable network 12. Each of a plurality of receivers 14 is configured to recognize the transmissions from the server and process received multimedia signals for presentation on a suitable display device 16. Depending upon the type of system, the network and receivers can be embodied in various forms. In a cable TV system, for example, the receivers 14 might be set-top boxes or the like, and the transmission media for the network can be coaxial and/or fiber-optic cable, and could also include microwave or other wireless media. Likewise, in a satellite television system, set-top boxes could be connected to suitable interface equipment to communicate with satellite transceivers.

Alternatively, the system could be a cellular telephone or Wi-Fi environment. In these cases, the receivers can be mobile telephones or PDAs with built-in displays and suitable wireless interfaces for communication with base stations, wireless network access points, etc.

Depending on the nature of the system, the multimedia signal can be broadcast to all receivers simultaneously, for instance in the case of a cable satellite television network. To support video-on-demand capabilities, the signal might be re-broadcast in cyclic segments. In other systems, the transmissions might be point-to-point, to provide true real-time on-demand functionality.

Referring to FIG. 2, a process for implementing the principles of the invention in such networks is illustrated in flowchart form. The media presentation is subdivided into small, time-stamped data segments, where each segment represents a unit of information (e.g., audio) or a collection of multiple different units of data (e.g., video, audio, subtitles, and fonts) to be played/displayed during a certain time period. When a device begins to receive a data stream at step 200, the text content of the first data segment to be presented in the next time period is analyzed to determine the required fonts and the initial character set coverage (step 202). For each required font, a font subset that provides a minimal number of glyphs for the initial character set coverage is created and stored at step 204. This font subset is transmitted to a receiving device at step 206.

The text content of a subsequent data segment is then analyzed to determine the required fonts and character set coverage for the respective data segment at step 208. For each required font, a new font subset that comprises only the glyphs necessary for the character set coverage is created. The new font subset is compared with the previous font subset and glyphs that have been sent in the previous subset are removed at step 210, thereby producing a reduced font subset. If at least one glyph remains after all of the previously transmitted glyphs have been removed, as determined at step 212, the reduced font subset is stored and transmitted along with the respective data segment to the receiving device at step 206. If however, the reduced font subset is empty, i.e., all of the glyphs of the font subset have been previously transmitted, the process returns to step 208 to determine the character and glyph subset for the next time segment, for the given font.

Thus, the media presentation is subdivided into data segments where each segment is transmitted and buffered by a receiver while the previously sent data segment is rendered. As long as the data transmission speed is fast enough to allow data blocks be transmitted faster than the amount of time it takes to play the segment of media presentation, a continuous program playback can be achieved.

As illustrated in the above example, the method for font data streaming according to the exemplary embodiments of the invention eliminates the need for constant repetition (re-transmission) of the same font data chunks in a broadcast or multicast environment. In a multicast environment, where different terminals may request the start of a transmission of media content at different times from the beginning (e.g., “Video On Demand” services) , the reduced font data subsets created for respective segments will be resent at different times to different receiving devices, thereby minimizing the amount of data sent and optimizing the bandwidth usage.

Referring to FIG. 3, once a primary transmission is complete, the transmitted information is retained in the memory of the server. This information may be subdivided into transmission segments (e.g., for a first user at a first start time, a second user at a second start time subsequent to the first start time, a third user at a third start time subsequent to the second start time, and etc.). On a cell phone or PDA, each user will view a complete transmission regardless of the start time by the user.

According to the method of the exemplary embodiments of the invention, due to the different start times, the information from a first transmission can be used again for subsequent users thereby saving time and avoiding redundancy in action. Thus, subsequent transmissions are built on subsets previously used.

The foregoing embodiment pertains to those situations in which the viewer is able to receive the media presentation from its beginning, e.g. the viewer tunes into a television program at or before the time it is scheduled to start, or video-on-demand service is available. In these situations, the viewer will receive all of the font subsets that are needed to properly reproduce any of the textual characters that accompany the presentation.

In other situations where on-demand service is not available, the viewer may tune into a presentation, e.g., a broadcast presentation, sometime after it has begun, and does not have the ability to receive the information that was transmitted for prior time segments. Table 2 below relates to such a situation, and provides an example of a dialog appearing as part of a movie script presentation. The Time Stamps that appear in column 1 of the table correspond to the beginning of successive time segments for the presentation. Text messages are transmitted from a content server (e.g., a digital cable broadcast server or a mobile TV network IP server) to a receiving terminal (e.g., a cable box or a wireless mobile device) along with the media segments, to enable English language subtitles be displayed in a particular typeface that is chosen by content authors. The table depicts an example in which three different terminals, A, B and C, tune into the presentation at different times. Terminal A tunes in prior to the start of the presentation, terminal B tunes in after time T₁ but prior to time T_(2 ,) and terminal C tunes in after time T₂ but prior to time T₃. The content server is notified as each terminal tunes into the presentation, e.g. via login data transmitted by the respective terminals, and sends an appropriate multicast signal that is addressed to each of the respective terminals.

Referring to Table 2, the columns that correspond to the different terminals A, B, and C demonstrate the respective font data subsets that are to be transmitted to each device. At each initial time stamp interval, the initial font subset includes only those glyphs that are necessary to render and display a text message transmitted at that same time. The subsequent font subsets include only incremental updates between the previously transmitted font subsets and the new set of glyphs required to display a new text message. If all necessary glyph data has already been transmitted, no font data transmission takes place during the given time interval.

Thus, at time T₁ the font subset transmitted to terminal A comprises the glyphs for all of the characters that appear in the text message for segment 1 of the presentation. At time T₂, a reduced font subset is transmitted to terminal A, which comprises the font subset for the characters of segment 2, minus those whose data was previously transmitted for segment 1. At the same time, however, since terminal B logged in after time T₁, the complete font subset for segment 2 is transmitted to terminal B, as it did not receive any prior character information.

Likewise, at time T₃, terminal A receives another reduced font subset for segment 3, as does terminal B, which are based upon the character data that was previously transmitted to each terminal, respectively. In the meantime, terminal C logged in after time T₂, and so it receives the complete font subset for segment 3.

Exemplary embodiments of the invention provide a method of font data streaming that is able to support different media delivery scenarios and routing schemes. The method may be utilized in either “one to one” or “one to many” transmission, in broadcast and multicast transmissions, and allows different terminals to tune into a media broadcast at different times. Font data streaming assures that the minimal set of necessary font information is always present at the receiving terminal at the time when the text message is to be displayed. Accordingly, the previously mentioned redundancy in font data transmission is eliminated by sending only the minimal incremental subset of required font data to each terminal.

It will be appreciated by those skilled in the art that the present invention can be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The presently disclosed embodiment are therefore considered in all respects to be illustrative and not restricted. 

What is claimed is:
 1. A method of font data streaming in relation to font data transmissions, the method comprising steps as follows: subdividing a media stream into data segments, the media stream including character data and font data; analyzing text content of a data segment to determine any required fonts and an initial character set coverage for that data segment; for each required font, generating and storing into memory a font subset that comprises only glyphs necessary for the initial character set coverage; and transmitting the font subset along with the respective data segment to a receiving device; wherein said steps reduce redundancy in font data transmissions through reducing total number of characters for data transmitted during any given transmission to said receiving device.
 2. The method of claim 1, wherein each data segment represents a unit of data or a collection of multiple different units of data including video, audio, subtitles, and fonts.
 3. The method of claim 1, further comprising: analyzing text content of a subsequent data segment to determine required fonts and character set coverage for the subsequent data segment; for each required font, generating a current font subset that comprises only glyphs necessary for the character set coverage for the subsequent data segment; comparing the current font subset with any previous font subset and removing from the current font subset those glyphs that have been sent in a previous font subset, to produce a reduced font subset; storing the reduced font subset into memory; and transmitting the reduced font subset along with the subsequent data segment to a receiving device.
 4. The method of claim 3, further comprising: storing the previous font subset at the receiving device; and updating the font subset stored at the receiving device by adding the reduced font subset to the stored previous font subset.
 5. The method of claim 1, wherein the data stream is transmitted to a plurality of receiving devices that receive the data stream at different times and each device views a complete transmission regardless of a viewing start time by the device.
 6. The method of claim 5, wherein the font subset and the respective data segment are transmitted and stored at a first device and subsequently transmitted and stored at other devices.
 7. The method of claim 3, wherein the font subsets are stored at a server.
 8. A method of font data streaming, the method comprising steps as follows: subdividing a media stream into data segments, the media stream including character data and font data; analyzing text content of a data segment to determine required fonts and an initial character set coverage for that data segment; for each required font, generating and storing into memory a font subset that comprises only glyphs necessary for the initial character set coverage; transmitting the font subset along with the respective data segment to a receiving device; and transmitting a subsequent font subset that comprises additional glyphs for character set coverage of a subsequent data segment that has not been previously sent; wherein said steps reduce redundancy in font data transmissions through reducing total number of characters for data transmitted during any given transmission to said receiving device.
 9. The method of claim 8, wherein said transmitting of said subsequent font subset comprises: analyzing text content of a subsequent data segment to determine required fonts and character set coverage for the subsequent data segment; for each required font, generating a current font subset that comprises only glyphs necessary for the character set coverage for the subsequent data segment; comparing the current font subset with any previous font subset and removing from the current font subset those glyphs that have been sent in a previous font subset, to produce a reduced font subset; storing the reduced font subset in memory; and transmitting the reduced font subset along with the subsequent data segment to a receiving device.
 10. The method of claim 9, further comprising: storing the previous font subset at the receiving device; and updating the font subset stored at the receiving device by adding the reduced font subset to the stored previous font subset.
 11. The method of claim 8, wherein each font subset and its respective data segment are transmitted and stored at a first device, and subsequently transmitted and stored at other devices.
 12. The method of claim 8, wherein the font subsets are stored at a server. 